require '../enums.rb'

class Usuario < ActiveRecord::Base
  validates :nombre, :presence => {:message => '* Por favor ingrese el nombre del usuario'}
  validates :apellido, :presence => {:message => '* Por favor ingrese el apellido del usuario'}
  validates :email, 
            :presence => {:message => '* Por favor ingrese el email del usuario'}, 
            :uniqueness => {:message => '* Por favor ingrese un email valido'}
  validates :resumen, :length => { :maximum => 500, :message=>'* Por favor verifique que el campo resumen no supere el limite establecido'}
              
  has_many :asignaciones
  has_many :charlas, :through => :asignaciones
  
  include BCrypt
  
  def passw
    @pass ||= Password.new(self.password)
  end

  def passw=(new_password)
    @pass = Password.create(new_password)
    self.password = @pass
  end
  
  def esUsuarioSuperAdmin?
    self.esSuperAdmin
  end
  
  def cargarImagen()
    imagen = Dir.glob("public/avatars/#{self.id}.*")
    if (! imagen.empty?)
      return imagen.first.sub("public", "..")
    else
      return "../avatars/avatar_default.gif"
    end
  end 
  
  def self.usuariosGuardados(idsUsuarios)
    if (!idsUsuarios.nil?)
      (Usuario.all).select{ |usuario| idsUsuarios.include?(usuario.id.to_s)}
    else
      Array.new
    end
  end
  
  def self.usuariosDisponibles(idsUsuarios)
    if (!idsUsuarios.nil?)
      (Usuario.all).select{ |usuario| ! idsUsuarios.include?(usuario.id.to_s)}
    else
      Usuario.all
    end
  end
end